/**
 * axios http请求封装模块
 */

import axios from "axios";
import {
    Message
} from 'element-ui';

// 设置默认的请求地址
axios.defaults.baseURL = 'http://localhost:3000';

// 添加请求拦截器
axios.interceptors.request.use(function (config) {
    // 在发送请求之前做些什么
    return config;
}, function (error) {
    // 对请求错误做些什么
    // 一般都是报网络延迟，请求超时
    Message({
        showClose: true,
        message: '请求超时',
        type: 'error'
    })
    return Promise.reject(error);
});
// 添加响应拦截器
axios.interceptors.response.use(function (response) {
    // 对响应数据做点什么
    return response;
}, function (error) {
    // 对响应错误做点什么
    Message({
        showClose: true,
        message: '服务器错误',
        type: 'error'
    })
    return Promise.reject(error);
});

// 二次封装get方法
export function get(url, obj) {
    return new Promise((resolve, reject) => {
        axios.get(
                url, {
                    params: obj
                })
            .then(function (response) {
                resolve(response.data)
            })
            .catch(function (error) {
                reject(error.data)
            });
    })
}
// post方法
export function post(url, obj) {
    return new Promise((resolve, reject) => {
        axios.post(url, obj)
            .then(function (response) {
                resolve(response.data)
            })
            .catch(function (error) {
                reject(error.data)
            });
    })
}

// 删除方法
// export function del(url, obj) {
//     return new Promise((resolve, reject) => {
//         axios.delete(url, {
//                 params: obj
//             })
//             .then(function (response) {
//                 resolve(response.data)
//             })
//             .catch(function (error) {
//                 reject(error.data)
//             });
//     })
// }
// put方法
// export function put(url, obj) {
//     return new Promise((resolve, reject) => {
//         axios.put(url, obj)
//             .then(function (response) {
//                 resolve(response.data)
//             })
//             .catch(function (error) {
//                 reject(error.data)
//             });
//     })
// }
// export function post(url, obj) {
//     return new Promise((resolve, reject) => {
//         axios.post(url, obj)
//             .then(function (response) {
//                 resolve(response.data)
//             })
//             .catch(function (error) {
//                 reject(error.data)
//             });
//     })
// }

// 删除方法
// export function del(url, obj) {
//     return new Promise((resolve, reject) => {
//         axios.delete(url, {
//                 params: obj
//             })
//             .then(function (response) {
//                 resolve(response.data)
//             })
//             .catch(function (error) {
//                 reject(error.data)
//             });
//     })
// }
// put方法
// export function put(url, obj) {
//     return new Promise((resolve, reject) => {
//         axios.put(url, obj)
//             .then(function (response) {
//                 resolve(response.data)
//             })
//             .catch(function (error) {
//                 reject(error.data)
//             });
//     })
// }

